One very common and relatively inexpensive technique for measuring the speed of a moving part is to produce electrical pulses in synchronism with movement of the part and to count the number of pulses produced per unit interval of time. For example, a variable reluctance sensor may be mounted relative to a rotary shaft for producing a pulse each time a gear tooth or notch formed on the shaft passes the sensor. The pulses may be applied to a control circuit (which may include a microprocessor) that counts the pulses and maintains a record of the time at which each pulse is received. In such case, the speed of the shaft (in revolutions per second, for example) can be computed as a simple function of the counter value, the time elapsed between the first and last pulses of the stored count, and number of pulses produced per revolution of the shaft. For the sake of convenience, the speed calculation is usually repeated at a known update rate, as may be defined, for example, by the loop time of a microprocessor-based controller. In other words, the controller periodically executes a software routine that checks the counter value and computes a new speed value. A limitation of this technique occurs when the speed of the shaft is so low that the pulse frequency is lower than the update frequency; that is, when no pulses have been received since the previous speed calculation. At such point, there is insufficient information to update the calculated speed, although it can be deduced that the previously calculated value is no longer correct.
When the calculated speed is used for control purposes, the above-described limitation also limits the ability to perform any control function based on the calculated speed. For example, when the speed of a vehicle engine or transmission is calculated and used in a control strategy to engage a transmission clutch, it becomes difficult or impossible for the control strategy to achieve high shift quality at low vehicle speeds.
Known techniques for handling the above-described low speed limitation include simply holding the value of the previous speed calculation until the next pulse is received, or assuming that the speed is zero and ramping the indicated speed to zero using a first order filtering technique. However, these approaches are inadequate for control purposes where accurate low speed information is important. In the transmission shift control application, for example, certain shifts occur at very low speeds, such as when shifting between forward and reverse speed ranges, and high shift quality is difficult to achieve when the above-mentioned techniques are used to estimate speed.
Accordingly, what is needed is a speed estimation method that develops a more accurate low speed indication from an inexpensive pulse-type sensor.